import { Unitl } from "./Unitl";

Unitl.PrintStartTime();

//let 关键字，声明变量，限定了变量的作用域
//和C#，C++的直接声明变量类似

Unitl.PrintOpeationName("类型推断");
/*
使用let 可以让ts自动帮你进行变量类型的推断
*/ 
let str = "hello";
//str = 987; 会报错

Unitl.PrintOpeationName("类型注解");
/*
 类型注解，就是给变量加个类型的注释，告诉ts
 这个变量我给限定成什么类型的了，不用再让ts自动进行类型判断了
 */
let newStr:string = "HiHiHi";
//newStr = 666;

Unitl.PrintOpeationName("类型断言");
let numberArray = [1,2,3];
/*
尾部添加 as number，就是告诉ts，我很确定这就是number类型的
如果是这样写:
let result = numberArray.find(item => item > 2);
则在result * 5 这里，会报错
因为ts认为这个result可能是undfined或者有非number类型的值
*/
let result = numberArray.find(item => item > 2) as number;
console.log(`result ： ${result * 5}`);
